package com.proandroidgames;

import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;

import javax.microedition.khronos.opengles.GL;
import javax.microedition.khronos.opengles.GL10;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.opengl.GLUtils;
import android.provider.Settings.Global;

public class SFGoodGuy {
	private FloatBuffer vertexBuffer;
	private FloatBuffer textureBuffer;
	private ByteBuffer indexBuffer;
	public boolean isDestroyed = false;
	private int damage = 0;
	//private int [] textures = new int [1];
	private float vertices[]={
			0.0f,0.0f,0.0f,
			1.0f,0.0f,0.0f,
			1.0f,1.0f,0.0f,
			0.0f,1.0f,0.0f
	};
	private float texture [] = {
			0.0f,0.0f,
			0.25f,0.0f,
			0.25f,0.25f,
			0.0f,0.25f
	};
	private byte indices[] ={
			0,1,2,
			0,2,3
	};
	public SFGoodGuy() {
		ByteBuffer byteBuffer = ByteBuffer.allocateDirect(vertices.length*4);
		byteBuffer.order(ByteOrder.nativeOrder());
		
		vertexBuffer = byteBuffer.asFloatBuffer();
		vertexBuffer.put(vertices);
		vertexBuffer.position(0);
		
		byteBuffer = ByteBuffer.allocateDirect(texture.length*4);
		byteBuffer.order(ByteOrder.nativeOrder());
		
		textureBuffer = byteBuffer.asFloatBuffer();
		textureBuffer.put(texture);
		textureBuffer.position(0);
		
		indexBuffer = ByteBuffer.allocateDirect(indices.length);
		indexBuffer.put(indices);
		indexBuffer.position(0);
	}
	public void draw(GL10 gl,int []spiteSheet){
		gl.glBindTexture(GL10.GL_TEXTURE_2D, spiteSheet[0]);
		gl.glFrontFace(GL10.GL_CCW);
		gl.glEnable(GL10.GL_CULL_FACE);
		gl.glCullFace(GL10.GL_BACK);
		gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
		gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
		

		gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
		gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, textureBuffer);
		gl.glDrawElements(GL10.GL_TRIANGLES, indices.length, GL10.GL_UNSIGNED_BYTE, indexBuffer);
		
		gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
		gl.glDisableClientState(GL10.GL_TEXTURE_COORD_ARRAY);
		gl.glDisableClientState(GL10.GL_CULL_FACE);
		
	}
	  public void applyDamage(){
	    	damage++;
	    	if (damage == SFEngine.PLAYER_SHIELDS){
	    		isDestroyed = true;
	    	}
	  }
}
